import Vue from 'vue'
import Router from 'vue-router'

// in development-env not use lazy-loading, because lazy-loading too many pages will cause webpack hot update too slow. so only in production use lazy-loading;
// detail: https://panjiachen.github.io/vue-element-admin-site/#/lazy-loading

Vue.use(Router)

/* Layout */
import Layout from '../views/layout/Layout'

/**
 * hidden: true                   if `hidden:true` will not show in the sidebar(default is false)
 * alwaysShow: true               if set true, will always show the root menu, whatever its child routes length
 *                                if not set alwaysShow, only more than one route under the children
 *                                it will becomes nested mode, otherwise not show the root menu
 * redirect: noredirect           if `redirect:noredirect` will no redirect in the breadcrumb
 * name:'router-name'             the name is used by <keep-alive> (must set!!!)
 * meta : {
    title: 'title'               the name show in submenu and breadcrumb (recommend set)
    icon: 'svg-name'             the icon show in the sidebar,
  }
 **/

//所有权限通用路由表
//如首页和登录页和一些不用权限的公用页面
export const constantRoutes = [
  //这里有一个需要非常注意的地方就是
  //404页面一定要最后加载，如果放在constantRouterMap一同声明了404，后面的所以页面都会被拦截到404
  {path: '/login', component: () => import('@/views/login/index'), hidden: true},
  {path: '/404', component: () => import('@/views/404'), hidden: true},

  {
    path: '/',
    component: Layout,
    redirect: '/dashboard',
    name: 'Dashboard',
    children: [{
      path: 'dashboard',
      component: () => import('@/views/dashboard/index'),
      meta: {title: '知识图谱管理系统', icon: 'dashboard'}
    },
      // {
      //   path: '/category/:id',
      //   component: () => import('@/views/management/task/category.vue'),
      //   meta: {title: '目录页面', icon: 'tree'}
      // }
      ]

  }]

/**
 * 动态路由
 */
// export const asyncRoutes = [
//   {
//     path: '/user',
//     component: Layout,
//     redirect: '/user/table',
//     name: '用户管理',
//     meta: {title: '用户管理', icon: 'user'},
//     children: [
//       {
//         path: 'table',
//         name: '用户列表',
//         component: () => import('@/views/management/user/getAllUser'),
//         meta: {title: '用户列表', icon: 'table'}
//       },
//       {
//         path: 'save',
//         name: '添加用户',
//         component: () => import('@/views/management/user/save'),
//         meta: {title: '添加用户', icon: 'tree'}
//       },
//       {
//         path: 'edit/:id',
//         name: '编辑用户',
//         component: () => import('@/views/management/user/save'),
//         meta: {title: '编辑用户', noCache: true},
//         hidden: true
//       }
//     ]
//   },
//
//   {
//     path: '/role',
//     component: Layout,
//     redirect: '/role/table',
//     name: '角色管理',
//     meta: {title: '角色管理', icon: 'user'},
//     children: [
//       {
//         path: 'table',
//         name: '角色列表',
//         component: () => import('@/views/management/role/getAllRole'),
//         meta: {title: '角色列表', icon: 'table'}
//       },
//       {
//         path: 'save',
//         name: '添加角色',
//         component: () => import('@/views/management/role/save'),
//         meta: {title: '添加角色', icon: 'tree'}
//       },
//       {
//         path: 'edit/:id',
//         name: '编辑角色',
//         component: () => import('@/views/management/role/save'),
//         meta: {title: '编辑角色', noCache: true},
//         hidden: true
//       }
//     ]
//   },
//
//   {
//     path: '/volunteer',
//     component: Layout,
//     redirect: '/volunteer/table',
//     name: '志愿者管理',
//     meta: {title: '志愿者管理', icon: 'user'},
//     children: [
//       {
//         path: 'table',
//         name: '志愿者列表',
//         component: () => import('@/views/management/volunteer/getAllVolunteer'),
//         meta: {title: '志愿者列表', icon: 'table'}
//       },
//       {
//         path: 'save',
//         name: '添加志愿者',
//         component: () => import('@/views/management/volunteer/save'),
//         meta: {title: '添加志愿者', icon: 'tree'}
//       },
//       {
//         path: 'edit/:id',
//         name: '编辑志愿者',
//         component: () => import('@/views/management/volunteer/save'),
//         meta: {title: '编辑志愿者', noCache: true},
//         hidden: true
//       }
//     ]
//   },
//
//   {
//     path: '/activity',
//     component: Layout,
//     redirect: '/activity/table',
//     name: '活动管理',
//     meta: {title: '活动管理', icon: 'user'},
//     children: [
//       {
//         path: 'table',
//         name: '活动列表',
//         component: () => import('@/views/management/activity/getAllActivities'),
//         meta: {title: '活动列表', icon: 'table'}
//       },
//       {
//         path: 'save',
//         name: '新增活动',
//         component: () => import('@/views/management/activity/save'),
//         meta: {title: '新增活动', icon: 'tree'},
//         hidden: true
//       },
//       {
//         path: 'edit/:id',
//         name: '编辑活动',
//         component: () => import('@/views/management/activity/save'),
//         meta: {title: '编辑志愿者', noCache: true},
//         hidden: true
//       },
//       {
//         path: 'group/:id',
//         name: '查看活动分组详情',
//         component: () => import('@/views/management/group/getGroup'),
//         meta: {title: '查看活动分组详情', noCache: true},
//         hidden: true
//       },
//       {
//         path: 'group',
//         name: '活动分组管理',
//         component: () => import('@/views/management/group/groupManage'),
//         meta: {title: '活动分组管理', icon: 'tree'}
//       }
//     ]
//   },
//
//   {
//     path: '/task',
//     component: Layout,
//     redirect: '/task/taskList',
//     name: '任务管理',
//     meta: {title: '任务管理', icon: 'user'},
//     children: [
//       {
//         path: 'list',
//         name: '任务列表',
//         component: () => import('@/views/management/task/taskList'),
//         meta: {title: '任务列表', icon: 'table'}
//       },
//       {
//         path: 'distribute',
//         name: '任务分配',
//         component: () => import('@/views/management/task/taskDistribute'),
//         meta: {title: '任务分配', icon: 'tree'}
//       }
//     ]
//   },
//
//
//   {
//     path: '/example',
//     component: Layout,
//     redirect: '/example/table',
//     name: 'Example',
//     meta: {title: 'Example', icon: 'example'},
//     children: [
//       {
//         path: 'table',
//         name: 'Table',
//         component: () => import('@/views/table/index'),
//         meta: {title: 'Table', icon: 'table'}
//       },
//       {
//         path: 'tree',
//         name: 'Tree',
//         component: () => import('@/views/tree/index'),
//         meta: {title: 'Tree', icon: 'tree'}
//       }
//     ]
//   },
//
//   {
//     path: '/form',
//     component: Layout,
//     children: [
//       {
//         path: 'index',
//         name: 'Form',
//         component: () => import('@/views/form/index'),
//         meta: {title: 'Form', icon: 'form'}
//       }
//     ]
//   },
//
//   {
//     path: '/nested',
//     component: Layout,
//     redirect: '/nested/menu1',
//     name: 'Nested',
//     meta: {
//       title: 'Nested',
//       icon: 'nested'
//     },
//     children: [
//       {
//         path: 'menu1',
//         component: () => import('@/views/nested/menu1/index'), // Parent router-view
//         name: 'Menu1',
//         meta: {title: 'Menu1'},
//         children: [
//           {
//             path: 'menu1-1',
//             component: () => import('@/views/nested/menu1/menu1-1'),
//             name: 'Menu1-1',
//             meta: {title: 'Menu1-1'}
//           },
//           {
//             path: 'menu1-2',
//             component: () => import('@/views/nested/menu1/menu1-2'),
//             name: 'Menu1-2',
//             meta: {title: 'Menu1-2'},
//             children: [
//               {
//                 path: 'menu1-2-1',
//                 component: () => import('@/views/nested/menu1/menu1-2/menu1-2-1'),
//                 name: 'Menu1-2-1',
//                 meta: {title: 'Menu1-2-1'}
//               },
//               {
//                 path: 'menu1-2-2',
//                 component: () => import('@/views/nested/menu1/menu1-2/menu1-2-2'),
//                 name: 'Menu1-2-2',
//                 meta: {title: 'Menu1-2-2'}
//               }
//             ]
//           },
//           {
//             path: 'menu1-3',
//             component: () => import('@/views/nested/menu1/menu1-3'),
//             name: 'Menu1-3',
//             meta: {title: 'Menu1-3'}
//           }
//         ]
//       },
//       {
//         path: 'menu2',
//         component: () => import('@/views/nested/menu2/index'),
//         meta: {title: 'menu2'}
//       }
//     ]
//   },
//
//   {
//     path: 'external-link',
//     component: Layout,
//     children: [
//       {
//         path: 'https://panjiachen.github.io/vue-element-admin-site/#/',
//         meta: {title: 'External Link', icon: 'link'}
//       }
//     ]
//   },
//
//   {path: '*', redirect: '/404', hidden: true}
// ]

const createRouter = () => new Router({
  // mode: 'history', // require service support
  scrollBehavior: () => ({y: 0}),
  routes: constantRoutes
})

const router = createRouter()

export default router
